/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package cataletra.gui;

/**
 *
 * @author arthur
 */
import cataletra.main.CacaPalavras;
import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.geom.Line2D;
import java.util.ArrayList;
import javax.swing.JButton;

public class BotaoCataLetra extends JButton {
    
    private ArrayList<Integer> posicoesLinhas;
    private Color cor;
    private float grossuraLinha;
    
    public BotaoCataLetra(){
        super();
        
        posicoesLinhas = new ArrayList();
    }

    public void riscar(int lineDirection) {
        this.posicoesLinhas.add(lineDirection);
    }

    @Override
    protected void paintComponent(Graphics g) {
        super.paintComponent(g);

        Graphics2D g2d = (Graphics2D) g.create();
        g2d.setColor(cor != null ? cor : Color.black);
        g2d.setStroke(new BasicStroke(grossuraLinha));
        
        
        for(int i = 0; i < posicoesLinhas.size(); i++){
            if(posicoesLinhas.get(i) == CacaPalavras.LESTE || posicoesLinhas.get(i) == CacaPalavras.OESTE){
                g2d.draw(new Line2D.Double(0, getHeight() / 2, getWidth(), getHeight() / 2));
            } else if(posicoesLinhas.get(i) == CacaPalavras.NORTE || posicoesLinhas.get(i) == CacaPalavras.SUL){
                g2d.draw(new Line2D.Double(getWidth() / 2, 0, getWidth() / 2, getHeight()));
            } else if(posicoesLinhas.get(i) == CacaPalavras.NORDESTE || posicoesLinhas.get(i) == CacaPalavras.SUDOESTE){
                g2d.draw(new Line2D.Double(0, getHeight(), getWidth(), 0));
            } else if(posicoesLinhas.get(i) == CacaPalavras.NOROESTE || posicoesLinhas.get(i) == CacaPalavras.SUDESTE){
                g2d.draw(new Line2D.Double(0, 0, getWidth(), getHeight()));
            }            
        }
                
        g2d.dispose();
    }

    public Color getCor() {
        return cor;
    }

    public void setCor(Color cor) {
        this.cor = cor;
    }

    public float getGrossuraLinha() {
        return grossuraLinha;
    }

    public void setGrossuraLinha(float grossuraLinha) {
        this.grossuraLinha = grossuraLinha;
    }

    public ArrayList<Integer> getPosicoesLinhas() {
        return posicoesLinhas;
    }

    public void setPosicoesLinhas(ArrayList<Integer> posicoesLinhas) {
        this.posicoesLinhas = posicoesLinhas;
    }
}
